package fr.expdev.bndd.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RelativeLayout;
import android.widget.TextView;
import fr.expdev.bndd.R;
import greendroid.widget.item.Item;
import greendroid.widget.itemview.ItemView;

public class CheckItemView extends RelativeLayout implements ItemView {
	
	/**
	 * Titre
	 */
	protected TextView titleView;
	
	/**
	 * Sous-titre
	 */
	protected TextView subtitleView;
	
	/**
	 * Checkbox à droite
	 */
	protected CheckBox checkbox;
	
	/**
	 * Objet métier
	 */
	protected CheckItem checkItem;
	
	/**
	 * Listener qui écoute quand on clic sur l'item
	 */
	protected OnClickListener onClickListener = new OnClickListener() {
		
		@Override
		public void onClick(View v) {
			if (v != checkbox) {
				checkbox.setChecked(!checkbox.isChecked());
			}
			checkItem.notifyValueChange(checkbox.isChecked());
		}
	};
	
    public CheckItemView(Context context) {
        this(context, null);
    }

	public CheckItemView(Context context, AttributeSet attrs) {
		super(context, attrs, 0);
	}

    public CheckItemView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

	@Override
	public void prepareItemView() {
		titleView = (TextView)findViewById(R.id.bndd_title);
		subtitleView = (TextView)findViewById(R.id.bndd_subtitle);
		checkbox = (CheckBox)findViewById(R.id.bndd_checkbox);
	}

	@Override
	public void setObject(Item object) {
		checkItem = (CheckItem)object;
		titleView.setText(checkItem.text);
		subtitleView.setText(checkItem.subtitle);
		checkbox.setChecked(checkItem.isChecked());
		
		checkbox.setOnClickListener(onClickListener);
		setOnClickListener(onClickListener);
	}

}
